package ynu.edu.service;

import ynu.edu.domain.PageDTO;
import ynu.edu.domain.dto.Txt2ImgRequest;
import ynu.edu.domain.vo.Txt2ImgResponse;
import ynu.edu.entity.Text2Img;

import java.util.Map;

/**
 * Text2Img服务接口
 */
public interface Text2ImgService {

    /**
     * 文本生成图像
     * @param request 生成请求
     * @return 生成响应
     */
    Txt2ImgResponse txt2img(Txt2ImgRequest request);

    /**
     * 检查Stable Diffusion服务健康状态
     * @return 服务是否可用
     */
    boolean checkServiceHealth();
    
    /**
     * 分页查询生成记录
     * @param page 页码（从1开始）
     * @param size 每页大小
     * @param status 状态过滤（可选）
     * @param modelName 模型名称过滤（可选）
     * @return 分页结果
     */
    PageDTO<Text2Img> getPageRecords(Integer page, Integer size, String status, String modelName);
    
    /**
     * 根据任务ID查询记录
     * @param taskId 任务ID
     * @return 生成记录
     */
    Text2Img getByTaskId(String taskId);
    
    /**
     * 获取统计信息
     * @return 统计信息
     */
    Map<String, Object> getStatistics();
    
    /**
     * 根据任务ID删除记录
     * @param taskId 任务ID
     * @return 是否删除成功
     */
    boolean deleteByTaskId(String taskId);
}
